package com.zhang.authoritycenter.service;

import com.zhang.authoritycenter.common.model.dao.organization.OrganizationDO;
import com.zhang.authoritycenter.common.model.dto.organization.OrganizationAddReqDTO;
import com.zhang.authoritycenter.common.model.dto.organization.OrganizationGetListReqDTO;
import com.zhang.authoritycenter.common.model.dto.organization.OrganizationUpdateReqDTO;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author KingHood
 * @since 2023-12-18
 */
public interface IOrganizationService {

    /**
     * 新建组织
     *
     * @param in 组织信息
     * @return 组织
     * @author zfj
     * @date 2023/12/18
     */
    OrganizationDO addOrganization(OrganizationAddReqDTO in);

    /**
     * 获取组织信息
     *
     * @param id 组织id
     * @return 组织
     * @author zfj
     * @date 2023/12/18
     */
    OrganizationDO getOrganizationInfo(Long id);

    /**
     * 组织修改
     *
     * @param in 组织信息
     * @return 组织
     * @author zfj
     * @date 2023/12/18
     */
    OrganizationDO updateOrganization(OrganizationUpdateReqDTO in);


    /**
     * 批量删除组织
     *
     * @param idList 组织id
     * @return 是否删除成功
     * @author zfj
     * @date 2023/12/18
     */
    Boolean deleteOrganizationBatch(List<Long> idList);

    /**
     * <p>下拉列</p>
     * 全量组织数据
     *
     * @param in 入参
     * @return api列表
     * @author zfj
     * @date 2023/12/19
     */
    List<OrganizationDO> getList(OrganizationGetListReqDTO in);

}
